package org.dromara.hm.domain;

import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serial;

/**
 * 退款退货明细对象 hm_sale_order_refund
 *
 * @author Hzy
 * @date 2025-04-10
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hm_sale_order_refund")
public class HmSaleOrderRefund extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 退款记录ID
     */
    @TableId(value = "refund_id")
    private String refundId;

    /**
     * 关联销售订单ID
     */
    private String saleId;

    /**
     * 关联商品ID
     */
    private String saleProductId;

    /**
     * 商品类型
     */
    private String productType;

    /**
     * 类型（1-仅退款 2-退货退款）
     */
    private Integer refundType;

    /**
     * 本次退款金额
     */
    private BigDecimal refundAmount;

    /**
     * 实际回填库存数量 (只包含已提货部分)
     */
    private Integer actualReturnToStockNum;

    /**
     * 本次退货数量
     */
    private Integer returnNum;

    /**
     * 申请时间
     */
    private Date applyTime;

    /**
     * 处理人ID
     */
    private String processorId;

    /**
     * 处理时间
     */
    private Date processTime;

    /**
     * 状态（0-待审核 1-已通过 2-已拒绝 3-已完成）
     */
    private Integer status;

    /**
     * 原因编码（商品损坏/7天无理由等）
     */
    private String reasonCode;

    /**
     * 详细描述
     */
    private String description;

    /**
     * 证明材料（图片/文档路径）
     */
    private String proofFiles;

    /**
     * 是否删除
     */
    @TableLogic
    private Long delFlag;


}
